package com.shujia.day13;

import java.util.LinkedList;

/*
    Collection[接口]:
        List[接口]: 元素有序，可以发生重复，有索引的概念
            ArrayList[具体的子类]: 底层数据结构是数组，查询快，增删慢，线程不安全，效率高。
            Vector[具体的子类]: 底层数据结构是数组，查询快，增删慢，先出安全，效率低。
                    即便Vector是线程安全的，我们以后也不会用它。
                    特殊的功能：
                        public void addElement(E obj)
                        public E elementAt(int index)
                        public Enumeration elements()
            LinkedList[具体的子类]: 底层数据结构是双链表，增删快，查询慢，线程不安全，效率高
                    特殊功能：
                        public void addFirst(E e)及addLast(E e)
                        public E getFirst()及getLast()
                        public E removeFirst()及public E removeLast()



        Set[接口]: 元素无序且唯一，没有索引
 */
public class LinkedListDemo1 {
    public static void main(String[] args) {
        LinkedList list1 = new LinkedList();

        list1.add("hello");
        list1.add("world");
        list1.add("java");
        list1.add("hello");
        list1.add("world");
        list1.add("hadoop");

        System.out.println("list1: "+list1);
        System.out.println("=====================");
        //public void addFirst(E e)及addLast(E e)
        list1.addFirst("李刚");
        list1.addLast("钱志强");
        System.out.println("list1: "+list1);
        System.out.println("----------------------");
        //public Object getFirst()及getLast()
        System.out.println(list1.getFirst());
        System.out.println(list1.getLast());
        System.out.println("list1: "+list1);
        System.out.println("----------------------");
        //public E removeFirst()及public E removeLast()
        System.out.println(list1.removeFirst());
        System.out.println(list1.removeLast());
        System.out.println("list1: "+list1);


    }
}
